This invention relates generally to parts inspection, and more specifically to, continuous inspection of small, intricate or delicate parts.
There are many parts within industry that by necessity are of intricate nature and manufactured to tight tolerances. One example of such a part is cylindrical glass tubes. The requirement for tight tolerances is based upon a need of the assembly in which the part is used, or the application where the part is used.
To ensure the function and quality of the assembly or application, the parts are inspected. Typically, the inspection requires labor-intensive and subjective manual inspections with measurement devices such as calipers or micrometers. Other inspection techniques provide go/no-go gauging. Each part to be inspected has tolerances associated with it, and the tolerances can lead to errors and uncertainties. One standard manufacturing practice is to make tight tolerances even tighter to compensate for the errors and uncertainties. The tighter tolerances however lead to unnecessary expenses through additional machining time and tooling costs as well as additional scrapping of parts which do not meet the tolerances that are tighter than necessary.
One inspection method known in the industry utilizes vision systems, which focus on the part and compare the part's characteristics against the predetermined pass/fail criteria (i.e. the tolerances). This method is well established and several manufacturers make such vision systems. However, within the method, the handling of fragile parts, especially those of a delicate nature, such as glass, requires manual intervention to properly handle and locate the part and present it to the vision system in order to facilitate inspection. This manual intervention entails considerable effort and expense, and still can introduce some inaccuracies and inconsistencies, which are inherent in manual operations.
One programming approach utilized in the above described vision systems is an initialization of variables on startup or reset of the controller by copying data from a memory location dedicated to the initialization of variables. Drawbacks to this approach to initialization include programming complexity of having different values for each variable, and risks associated with storing the data to memory locations, for example, corrupted memory locations. Corrupted memory locations can result in an improper reset that may create, in some systems, a potentially dangerous condition.